# Please consult components/viz/README.md about allowable dependencies.

include_rules = [
  # Do not use mojo bindings in viz/client/. This library should be agnostic
  # about how to communicate with viz.
  "-mojo/public/cpp/bindings",
  # Exception is struct_traits.h which is used for defining friends only.
  "+mojo/public/cpp/bindings/struct_traits.h",
  "+third_party/perfetto/protos/perfetto/trace/track_event",
  "+third_party/skia",
]

specific_include_rules = {
  "skia_helper.(cc|h)": [
    "+cc/base",
  ],
  # DEPS for GLHelper and friends which are in the root common/ directory.
  "(yuv_readback|gl_helper|gl_scaler).*\.(cc|h)": [
    "+gpu/GLES2",
    "+gpu/command_buffer/client",
    "+gpu/command_buffer/common",
    "+gpu/command_buffer/service",
    "+gpu/ipc/common",
  ],
  ".*(_unittest|_pixeltest|test_util)\.cc": [
    "+cc/test",
    "+components/viz/test",
    "+gpu/ipc/gl_in_process_context.h",
    "+gpu/ipc/test_gpu_thread_holder.h",
    "+media/base",
    "+ui/gl",
  ],
  ".*_benchmark\.cc": [
    "+components/viz/test/test_gpu_service_holder.h",
    "+gpu/ipc/gl_in_process_context.h",
  ],
  "features.cc" : [
    "+gpu/config/gpu_finch_features.h",
    "+gpu/config/gpu_switches.h",
    "+media/media_buildflags.h",
  ],
  "bitmap_allocation.cc" : [
    # Only used to pass Mojo handles, not to communicate with the viz service.
    "+mojo/public/cpp/base/shared_memory_utils.h",
  ],
}
